home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Cube 4: Multimedia Applications
/
MacCube Volume 4: Multimedia Applications.iso
/
Graphics
/
NIH Image Folder
/
Macros
/
Animation
next >
Wrap
Text File
|
1993-09-01
|
2KB
|
89 lines
{This file contains additional macros that work with stacks.}
procedure CheckForStack;
begin
if nPics=0 then begin
PutMessage('This macro requires a stack.');
exit;
end;
if nSlices=0 then begin
PutMessage('This window is not a stack.');
exit;
end;
end;
macro 'Add Slice [A]'; begin CheckForStack; AddSlice end;
macro 'Delete Slice [D]'; begin CheckForStack; DeleteSlice end;
macro 'First Slice [F]'; begin CheckForStack; SelectSlice(1) end;
macro 'Last Slice [L]'; begin CheckForStack; SelectSlice(nSlices) end;
macro '(-' begin end;
macro 'Make Surface Plot Movie…';
var
i,OldStack,NewStack:integer;
N,PlotWidth,PlotHeight:integer;
ScaleFactor:real;
OneToOne:boolean;
begin
RequiresVersion(1.50);
CheckForStack;
SaveState;
OldStack:=PicNumber;
N:=nSlices;
PlotWidth:=GetNumber('Surface Plot Width:',300);
PlotHeight:=GetNumber('Surface Plot Height:',300);
SetNewSize(PlotWidth,PlotHeight);
MakeNewStack('Stack');
NewStack:=PicNumber;
SelectPic(OldStack);
for i:= 1 to N do begin
SelectSlice(1);
SurfacePlot;
SelectAll;
Copy;
Dispose;
SelectPic(NewStack);
if i<>1 then AddSlice;
Paste;
SelectPic(OldStack);
DeleteSlice;
end;
Dispose; {OldStack}
RestoreState;
end;
macro 'Make Expression Movie…';
{Requires the Expression 3.0b(or later) filter plug-in}
var
width,height,nframes,i:integer;
begin
RequiresVersion(1.52);
width:=GetNumber('Width:',200);
height:=GetNumber('Height:',width);
nframes:=GetNumber('Number of Frames:',50);
SetNewSize(width,height);
MakeNewStack('Stack');
MakeNewWindow('Temp');
filter('Reset');
for i:=1 to nframes do begin
SelectWindow('Temp');
filter('Expression 3.0');
SelectAll;
Copy;
SelectWindow('Stack');
if i<>1 then AddSlice;
paste;
end;
SelectWindow('Temp');
Dispose;
end;